﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using AnesSystem.Models;
using System.Windows.Media;


namespace AnesSystem.Controls
{
    public class BaseElementCtrl : UserControl
    {
        #region Variables

        #endregion

        #region Constructor
        public BaseElementCtrl()
        {
            this.Loaded += BaseElementCtrl_Loaded;
        }

        public void BaseElementCtrl_Loaded(object sender, RoutedEventArgs e)
        {

        }

        #endregion

        #region Properties

        #endregion

        #region 依赖属性

        public Visibility SpeedVisibility
        {
            get { return (Visibility)GetValue(SpeedVisibilityProperty); }
            set { SetValue(SpeedVisibilityProperty, value); }
        }

        // Using a DependencyProperty as the backing store for Liquid.  This enables animation, styling, binding, etc...
        public static readonly DependencyProperty SpeedVisibilityProperty =
            DependencyProperty.Register("SpeedVisibility", typeof(Visibility), typeof(BaseElementCtrl), new PropertyMetadata(Visibility.Visible));

        public Visibility UnitVisibility
        {
            get { return (Visibility)GetValue(UnitVisibilityProperty); }
            set { SetValue(UnitVisibilityProperty, value); }
        }

        // Using a DependencyProperty as the backing store for Liquid.  This enables animation, styling, binding, etc...
        public static readonly DependencyProperty UnitVisibilityProperty =
            DependencyProperty.Register("UnitVisibility", typeof(Visibility), typeof(BaseElementCtrl), new PropertyMetadata(Visibility.Visible));

        public string Speed
        {
            get { return (string)GetValue(SpeedProperty); }
            set { SetValue(SpeedProperty, value); }
        }

        // Using a DependencyProperty as the backing store for Liquid.  This enables animation, styling, binding, etc...
        public static readonly DependencyProperty SpeedProperty =
            DependencyProperty.Register("Speed", typeof(string), typeof(BaseElementCtrl), new PropertyMetadata(""));

        public DrugSpeedModel DrugSpeed
        {
            get { return (DrugSpeedModel)GetValue(DrugSpeedProperty); }
            set { SetValue(DrugSpeedProperty, value); }
        }

        // Using a DependencyProperty as the backing store for MyProperty.  This enables animation, styling, binding, etc...
        public static readonly DependencyProperty DrugSpeedProperty =
            DependencyProperty.Register("DrugSpeed", typeof(DrugSpeedModel), typeof(BaseElementCtrl), new PropertyMetadata(null));


        public List<ConfigUnitsModel> ConfigUnitsModelList
        {
            get { return (List<ConfigUnitsModel>)GetValue(ConfigUnitsModelListProperty); }
            set { SetValue(ConfigUnitsModelListProperty, value); }
        }

        // Using a DependencyProperty as the backing store for ConfigUnitsModelList.  This enables animation, styling, binding, etc...
        public static readonly DependencyProperty ConfigUnitsModelListProperty =
            DependencyProperty.Register("ConfigUnitsModelList", typeof(List<ConfigUnitsModel>), typeof(BaseElementCtrl), new PropertyMetadata(null));



        #endregion

        #region Event

        #endregion

        #region Private Methods

        #endregion

        #region Public/Protected Methods

        #endregion

        #region EventHandlers

        #endregion



    }
}
